package 字符串.出现一次的字符;

import java.util.*;

/**
 * @author: wh(1835734390 @ qq.com)
 * @date: 2023/3/7 16:14
 * @description:
 * @version:
 */
public class Solution {
    public static void main(String[] args) {
        String str = "leetcode";
        System.out.println(firstUniqChar(str));
    }

    public static char firstUniqChar(String s) {
        //hashmap中的key排序是无序的，所以这里使用LinkedHashMap来保证有序,这样才能获取第一个出现一次的字符
        //LinkedHashMap是有序的，且默认为插入顺序。
        Map<Character,Integer> map = new LinkedHashMap<>();
        for (int i = 0; i < s.length(); i++) {
            map.put(s.charAt(i),map.getOrDefault(s.charAt(i),0) + 1);
        }
        Set<Map.Entry<Character, Integer>> entrySet = map.entrySet();
        Iterator<Map.Entry<Character, Integer>> iterator = entrySet.iterator();
        while (iterator.hasNext()){
            Map.Entry<Character, Integer> next = iterator.next();
            if (next.getValue() == 1){
                return next.getKey();
            }
        }
        return ' ';
    }
}
